'\" t
.TH "SYSTEMD\-FSTAB\-GENERATOR" "8" "" "systemd 257.1" "systemd-fstab-generator"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
systemd-fstab-generator \- Unit generator for /etc/fstab
.SH "SYNOPSIS"
.PP
/usr/lib/systemd/system\-generators/systemd\-fstab\-generator
.SH "DESCRIPTION"
.PP
systemd\-fstab\-generator
is a generator that translates
/etc/fstab
(see
\fBfstab\fR(5)
for details) into native systemd units early at boot and when configuration of the system manager is reloaded\&. This will instantiate mount and swap units as necessary\&.
.PP
The
\fIpassno\fR
field is treated like a simple boolean, and the ordering information is discarded\&. However, if the root file system is checked, it is checked before all the other file systems\&.
.PP
See
\fBsystemd.mount\fR(5)
and
\fBsystemd.swap\fR(5)
for more information about special
/etc/fstab
mount options this generator understands\&.
.PP
One special topic is handling of symbolic links\&. Historical init implementations supported symlinks in
/etc/fstab\&. Because mount units will refuse mounts where the target is a symbolic link, this generator will resolve any symlinks as far as possible when processing
/etc/fstab
in order to enhance backwards compatibility\&. If a symlink target does not exist at the time that this generator runs, it is assumed that the symlink target is the final target of the mount\&.
.PP
systemd\-fstab\-generator
implements
\fBsystemd.generator\fR(7)\&.
.SH "KERNEL COMMAND LINE"
.PP
systemd\-fstab\-generator
understands the following kernel command line parameters:
.PP
\fIfstab=\fR, \fIrd\&.fstab=\fR
.RS 4
Takes a boolean argument\&. Defaults to
"yes"\&. If
"no", causes the generator to ignore any mounts or swap devices configured in
/etc/fstab\&.
\fIrd\&.fstab=\fR
is honored only in the initrd, while
\fIfstab=\fR
is honored by both the main system and the initrd\&.
.sp
Added in version 186\&.
.RE
.PP
\fIroot=\fR
.RS 4
Configures the operating system\*(Aqs root filesystem to mount when running in the initrd\&. This accepts a device node path (usually
/dev/disk/by\-uuid/\&...
or
/dev/disk/by\-label/\&...
or similar), or the special values
"gpt\-auto",
"fstab", and
"tmpfs"\&.
.sp
Use
"gpt\-auto"
to explicitly request automatic root file system discovery via
\fBsystemd-gpt-auto-generator\fR(8)\&.
.sp
Use
"fstab"
to explicitly request automatic root file system discovery via the initrd
/etc/fstab
rather than via kernel command line\&.
.sp
Use
"tmpfs"
in order to mount a
\fBtmpfs\fR(5)
file system as root file system of the OS\&. This is useful in combination with
\fImount\&.usr=\fR
(see below) in order to combine a volatile root file system with a separate, immutable
/usr/
file system\&. Also see
\fIsystemd\&.volatile=\fR
below\&.
.sp
Added in version 217\&.
.RE
.PP
\fIrootfstype=\fR
.RS 4
Takes the root filesystem type that will be passed to the mount command\&.
\fIrootfstype=\fR
is honored by the initrd\&.
.sp
Added in version 217\&.
.RE
.PP
\fIrootflags=\fR
.RS 4
Takes the root filesystem mount options to use\&.
\fIrootflags=\fR
is honored by the initrd\&.
.sp
Note that unlike most kernel command line options this setting does not override settings made in configuration files (specifically: the mount option string in
/etc/fstab)\&. See
\fBsystemd-remount-fs.service\fR(8)\&.
.sp
Added in version 217\&.
.RE
.PP
\fImount\&.usr=\fR
.RS 4
Takes the
/usr/
filesystem to be mounted by the initrd\&. If
\fImount\&.usrfstype=\fR
or
\fImount\&.usrflags=\fR
is set, then
\fImount\&.usr=\fR
will default to the value set in
\fIroot=\fR\&.
.sp
Otherwise, this parameter defaults to the
/usr/
entry found in
/etc/fstab
on the root filesystem\&.
.sp
\fImount\&.usr=\fR
is honored by the initrd\&.
.sp
Added in version 217\&.
.RE
.PP
\fImount\&.usrfstype=\fR
.RS 4
Takes the
/usr/
filesystem type that will be passed to the mount command\&. If
\fImount\&.usr=\fR
or
\fImount\&.usrflags=\fR
is set, then
\fImount\&.usrfstype=\fR
will default to the value set in
\fIrootfstype=\fR\&.
.sp
Otherwise, this value will be read from the
/usr/
entry in
/etc/fstab
on the root filesystem\&.
.sp
\fImount\&.usrfstype=\fR
is honored by the initrd\&.
.sp
Added in version 217\&.
.RE
.PP
\fImount\&.usrflags=\fR
.RS 4
Takes the
/usr/
filesystem mount options to use\&. If
\fImount\&.usr=\fR
or
\fImount\&.usrfstype=\fR
is set, then
\fImount\&.usrflags=\fR
will default to the value set in
\fIrootflags=\fR\&.
.sp
Otherwise, this value will be read from the
/usr/
entry in
/etc/fstab
on the root filesystem\&.
.sp
\fImount\&.usrflags=\fR
is honored by the initrd\&.
.sp
Added in version 217\&.
.RE
.PP
\fIroothash=\fR, \fIusrhash=\fR
.RS 4
These options are primarily read by
\fBsystemd-veritysetup-generator\fR(8)\&. When set this indicates that the root file system (or
/usr/) shall be mounted from Verity volumes with the specified hashes\&. If these kernel command line options are set the root (or
/usr/) file system is thus mounted from a device mapper volume
/dev/mapper/root
(or
/dev/mapper/usr)\&.
.sp
Added in version 251\&.
.RE
.PP
\fIsystemd\&.volatile=\fR
.RS 4
Controls whether the system shall boot up in volatile mode\&. Takes a boolean argument or the special value
\fBstate\fR\&.
.sp
If false (the default), this generator makes no changes to the mount tree and the system is booted up in normal mode\&.
.sp
If true the generator ensures
\fBsystemd-volatile-root.service\fR(8)
is run in the initrd\&. This service changes the mount table before transitioning to the host system, so that a volatile memory file system ("tmpfs") is used as root directory, with only
/usr/
mounted into it from the configured root file system, in read\-only mode\&. This way the system operates in fully stateless mode, with all configuration and state reset at boot and lost at shutdown, as
/etc/
and
/var/
will be served from the (initially unpopulated) volatile memory file system\&.
.sp
If set to
\fBstate\fR
the generator will leave the root directory mount point unaltered, however will mount a
"tmpfs"
file system to
/var/\&. In this mode the normal system configuration (i\&.e\&. the contents of
"/etc/") is in effect (and may be modified during system runtime), however the system state (i\&.e\&. the contents of
"/var/") is reset at boot and lost at shutdown\&.
.sp
If this setting is set to
"overlay"
the root file system is set up as
"overlayfs"
mount combining the read\-only root directory with a writable
"tmpfs", so that no modifications are made to disk, but the file system may be modified nonetheless with all changes being lost at reboot\&.
.sp
Note that in none of these modes the root directory,
/etc/,
/var/
or any other resources stored in the root file system are physically removed\&. It\*(Aqs thus safe to boot a system that is normally operated in non\-volatile mode temporarily into volatile mode, without losing data\&.
.sp
Note that with the exception of
"overlay"
mode, enabling this setting will only work correctly on operating systems that can boot up with only
/usr/
mounted, and are able to automatically populate
/etc/, and also
/var/
in case of
"systemd\&.volatile=yes"\&.
.sp
Also see
\fIroot=tmpfs\fR
above, for a method to combine a
"tmpfs"
file system with a regular
/usr/
file system (as configured via
\fImount\&.usr=\fR)\&. The main distinction between
\fIsystemd\&.volatile=yes\fR, and
\fIroot=tmpfs\fR
in combination
\fImount\&.usr=\fR
is that the former operates on top of a regular root file system and temporarily obstructs the files and directories above its
/usr/
subdirectory, while the latter does not hide any files, but simply mounts a unpopulated tmpfs as root file system and combines it with a user picked
/usr/
file system\&.
.sp
Added in version 233\&.
.RE
.PP
\fIsystemd\&.swap=\fR
.RS 4
Takes a boolean argument or enables the option if specified without an argument\&. If disabled, causes the generator to ignore any swap devices configured in
/etc/fstab\&. Defaults to enabled\&.
.sp
Added in version 246\&.
.RE
.PP
\fIsystemd\&.mount\-extra=\fR\fI\fIWHAT\fR\fR\fI:\fR\fI\fIWHERE\fR\fR\fI[:\fR\fI\fIFSTYPE\fR\fR\fI[:\fR\fI\fIOPTIONS\fR\fR\fI]]\fR, \fIrd\&.systemd\&.mount\-extra=\fR\fI\fIWHAT\fR\fR\fI:\fR\fI\fIWHERE\fR\fR\fI[:\fR\fI\fIFSTYPE\fR\fR\fI[:\fR\fI\fIOPTIONS\fR\fR\fI]]\fR
.RS 4
Specifies the mount unit\&. Takes at least two and at most four fields separated with a colon (":")\&. Each field is handled as the corresponding fstab field\&. This option can be specified multiple times\&.
\fIrd\&.systemd\&.mount\-extra=\fR
is honored only in the initrd, while
\fIsystemd\&.mount\-extra=\fR
is honored by both the main system and the initrd\&. In the initrd, the mount point (and also source path if the mount is bind mount) specified in
\fIsystemd\&.mount\-extra=\fR
is prefixed with
/sysroot/\&.
.sp
Example:
.sp
.if n \{\
.RS 4
.\}
.nf
systemd\&.mount\-extra=/dev/sda1:/mount\-point:ext4:rw,noatime
.fi
.if n \{\
.RE
.\}
.sp
Added in version 254\&.
.RE
.PP
\fIsystemd\&.swap\-extra=\fR\fI\fIWHAT\fR\fR\fI[:\fR\fI\fIOPTIONS\fR\fR\fI]\fR, \fIrd\&.systemd\&.swap\-extra=\fR\fI\fIWHAT\fR\fR\fI[:\fR\fI\fIOPTIONS\fR\fR\fI]\fR
.RS 4
Specifies the swap unit\&. Takes the block device to be used as a swap device, and optionally takes mount options followed by a colon (":")\&. This option can be specified multiple times\&.
\fIrd\&.systemd\&.swap\-extra=\fR
is honored only in the initrd, while
\fIsystemd\&.swap\-extra=\fR
is honored by both the main system and the initrd\&.
.sp
Example:
.sp
.if n \{\
.RS 4
.\}
.nf
systemd\&.swap\-extra=/dev/sda2:x\-systemd\&.makefs
.fi
.if n \{\
.RE
.\}
.sp
Added in version 254\&.
.RE
.SH "SYSTEM CREDENTIALS"
.PP
\fIfstab\&.extra\fR
.RS 4
This credential may contain addition mounts to establish, in the same format as
\fBfstab\fR(5), with one mount per line\&. It is read in addition to
/etc/fstab\&.
.sp
Added in version 254\&.
.RE
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1), \fBfstab\fR(5), \fBsystemd.mount\fR(5), \fBsystemd.swap\fR(5), \fBsystemd-cryptsetup-generator\fR(8), \fBsystemd-gpt-auto-generator\fR(8), \fBkernel-command-line\fR(7), \m[blue]\fBKnown Environment Variables\fR\m[]\&\s-2\u[1]\d\s+2
.SH "NOTES"
.IP " 1." 4
Known Environment Variables
.RS 4
\%https://systemd.io/ENVIRONMENT/
.RE
